草庐IT

Android AsyncTask 内存泄漏

全部标签

java - JAXB 是否存在内存使用问题?

我正在使用JAXB进行xml解析,是否存在任何性能或内存使用问题? 最佳答案 需要注意的是JAXBContext.newInstance()是一个非常慢的操作。这是发生大量反射和类生成的地方,导致duffymo提到的perm空间问题。值得庆幸的是,JAXBContext是线程安全的,所以cacheoneawayandreuseit没问题。.否则,我认为可以肯定地说JAXB内存使用将与完整的DOM相当(或可能更少),当然也比SAX大。如果您有非常大的文档,可以processtheminchunkswithJAXB.JAXBRIdist

java - 方法密集型 Java 对象的内存占用是多少?

假设我有一个Java类,它有100K的方法代码,不包含任何变量,但只有20个字节的属性。我从这个类中实例化了1000个对象。我消耗了100,000K内存吗?或者只有100K+(20bytes*1000)?还是别的东西? 最佳答案 加载类本身的内存占用将大致对应于代码大小,但不会为类的每个实例重复代码。一个实例只需要与实例属性一样多的内存+管理对象实例本身的一些开销。 关于java-方法密集型Java对象的内存占用是多少?,我们在StackOverflow上找到一个类似的问题:

Java内存文件结构?

我需要在运行中使用资源做很多事情:解析xsd/xml文档,构建和编译java类,将它们打包成jarsanswars,在DB中持久化,将它们部署为OSGi等。我使用的大多数库/API都允许在内存中执行所有这些中间任务,但有一些“特殊”库仅使用java.io.File进行操作。除了使用真正的临时文件和目录之外,我别无选择,这在JavaEE环境中并不好。我相信必须有一个内存文件结构的库/解决方案,其节点扩展java.io.File(如我所见)。请放入已知/类似库的链接。欢迎任何评论。谢谢! 最佳答案 我不相信你会找到你要找的东西。编写ja

java - 对于不能全部放入内存的大多数排序数据的良好排序算法?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。如果给你:一定量的数据内存大小为数据大小的一半部分数据已排序您不知道排序数据的大小。你会选择哪种排序算法?我在插入和快速排序之间争论不休。我知道插入排序的最佳情况是O(n),但最坏情况是O(n2)。另外,考虑到内存有限,我会把数据分成两部分,对每一部分进行快速排序,然后将所有内容合并在一起。拆分数据需要O(n)时间,合并数据需要O(n)时间,使用快速排序

java - 使用更少的内存需要重新排序数组元素

我有一个最近的面试问题,以最少的内存使用量对数组中的元素进行重新排序。不使用任何额外的变量或集合等。输入:value65716890index01234输出:value90681765index01234 最佳答案 您可以使用XOR在元素之间交换(第一个与最后一个,第二个与最后一个,等等),如下所示:int[]arr={65,7,1,68,90};for(inti=0;i输出90681765 关于java-使用更少的内存需要重新排序数组元素,我们在StackOverflow上找到一个类似

java - JDK 类中 java.lang.ref.WeakReference 对象的内存泄漏

下面的简单代码再现了java.lang.ref.WeakReference对象在堆中的增长:publicstaticvoidmain(String[]args)throwsException{while(true){java.util.logging.Logger.getAnonymousLogger();Thread.sleep(1);}}这是jmap命令在几秒内的输出:user@t1007:~>jmap-d64-histo:live29201|grepWeakReference8:224931079664java.lang.ref.WeakReference31:132144[Lj

java - 加载 Java 实体时内存不足

我有一个可怕的问题,希望有一个非常简单的答案。我在执行基本操作时内存不足如果我有这样的代码:MyEntitymyEntity;for(Objectid:someIdList){myEntity=find(id);//dosomethingbasicwithmyEntity}并且find()方法是一个标准的EntityManager相关方法:publicMyEntityfind(Objectid){returnem.find(mycorp.ejb.entity.MyEntity.class,id);}这段代码在几周前就可以运行,如果数据库中的项目较少,它也能正常运行。我面临的结果错误是:

java - 如何使用 Java 将文件从 Zip 文件读取到内存?

我从SUN站点(http://java.sun.com/developer/technicalArticles/Programming/compression/)找到示例,但它返回BufferedOutputStream。但我想将ZipEntry文件作为InputStream获取,然后处理下一个文件。那可能吗?我的程序无法访问硬盘,因此它甚至无法临时保存文件。importjava.io.*;importjava.util.zip.*;publicclassUnZip{finalintBUFFER=2048;publicstaticvoidmain(Stringargv[]){try{B

java - 当没有调用 @Remove 注释方法时,有状态 session bean 会导致泄漏吗?

我有一个JSF应用程序,它在托管bean中从远程有状态sessionbean(EJB3.0)调用业务逻辑。现在有一个HttpSessionListener调用该有状态sessionbean上的@Remove注释方法,因此一旦HttpSession被销毁,容器就可以删除有状态sessionbean。现在我想知道如果我不调用带@Remove注释的方法并且HttpSession被销毁会发生什么。有状态sessionbean的客户端此时不存在记录器。容器会删除有状态sessionbean吗?或者它会永远存在导致某种泄漏(内存/磁盘)? 最佳答案

java动态内存分配?

为什么使用new关键字的对象初始化称为动态内存分配,因为编译时本身我们需要知道该对象所需的内存。另外请解释当您在heap和stack中执行ClassAobject=newClassA();时会发生什么。 最佳答案 所有Java对象都是动态分配的。您总是传递对它们的引用。这就是语言的设计方式。当你这样做时:ClassAobj=newClassA();然后在堆上分配对象并将对它的引用存储在堆栈上(当然,假设它在方法内部)。这意味着您始终可以传递对象,而不必担心它们的存储位置。 关于java动